import axios from 'axios'
import Vue from 'vue'
import { Dialog } from 'vant'

// 全局注册
Vue.use(Dialog)

const baseURL = 'http://localhost:9000'
const version = '/api/v1'

// 创建axios实例
const instance = axios.create({
  baseURL: baseURL + version,
  timeout: 7000,
  headers: {  }
})

// 封装请求拦截器
instance.interceptors.request.use(function (config) {
  // 对config进行二次处理、添加公共的config
  // 一般在这里统一加token
  // console.log('请求拦截器', config)
  // 用户鉴权
  config.headers.Authorization = localStorage.getItem('token')
  return config
}, function (error) {
  return Promise.reject(error)
})

// 封装响应拦截器
instance.interceptors.response.use(function (response) {
  // 根据HTTP状态码来判断请求成功与否
  // 根据业务状态码来判断业务成功与否
  // 数据过滤
  let res = null
  if (response.status === 200) {
    const data = response.data
    if (data.err === 0) {
      res = data.data || {}
    } else if (data.err === -1) {
			// 当err=-1表示token，立即跳出当前前面，去到登录页
			window.location.href = '/login'
		} else {
      Dialog.alert({
        title: '小贴士',
        message: '请求数据失败',
      })
    }
  }else{
    Dialog.alert({
      title: '小贴士',
      message: '网络异常，稍后再试',
    })
  }
  return res
}, function (error) {
  return Promise.reject(error)
})

export default instance
